Virtually all digital electronic devices manufactured today employ some form of digital memory for data storage. Desktop and laptop computers, personal digital assistants (PDAs), cellular phones, and digital audio devices like Motion Picture Experts Group, audio layer 3 (MP3) players are just a few examples of the myriad types of digital devices employing digital memory. Further, the physical media for digital memory may take various forms, such as magnetic tape, magnetic disc (such as in a hard disk drive, or HDD), optical disc (such as a compact disc (CD) or a digital versatile disc (DVD)), integrated circuit (IC) memory (such as various types of read-only memory (ROM), static random-access memory (SRAM), and dynamic random-access memory (DRAM)) and others.
Generally, a digital memory contains many separate memory locations, each of which may be individually addressed for data storage and retrieval. More specifically, digital data are stored on, or “written to,” specific addressable memory locations of the digital memory for later access. When subsequent access to that same data is necessary, the corresponding data is retrieved, or “read from,” the same addressable location. Each addressable location of the memory may store anywhere from a single binary digit (“bit”) to many “bytes,” or groups of bits, of digital data, depending on the particular memory technology, memory organization, and other factors. Further, access to the various memory locations may be performed sequentially (in the case of tape), more directly (as in the case of disc), randomly (in the case of RAM), or by way of some other access method.
Due to particular physical characteristics exhibited by each type of digital memory currently available, digital memory is often susceptible to data errors, in which data read from an addressable location of the memory is not the same as that which was previously written to that location. Physical defects in the actual recording media, unintended alterations in the data after storage in the memory, electrical noise causing errors during reading of the data, and other maladies typically cause such errors. Some errors may be of a transient nature, whereby a particular memory location only occasionally produces a data error, while others may be of a more permanent or persistent nature, depending on the particular cause of the error.
To exacerbate the data error problem, the amount of digital storage required for electronic devices has generally increased over time, regardless of the nature of the device, or the type of digital memory incorporated therein. To provide increased memory capacity, the physical size occupied by each quantum of data, such as a bit, typically decreases accordingly. Due to the physical characteristics of the particular recording media employed, this reduction in size is often associated with a commensurate increase in the number of persistent and transient defects encountered per memory location. For example, an optical disc with a certain size defect on its surface will likely affect more bits or memory locations on a higher capacity disc when compared to a comparable defect of a lower capacity disc, due in part to the smaller area occupied by each bit on the higher capacity disc.
While some types of digital data, such as audio or video data, may withstand low levels of data errors with little deleterious effect, most forms of data are required to be protected against substantially all data corruption. In response, many different error detection and correction schemes for digital memory have been devised. Generally, error detection schemes indicate the presence of an error in an addressable memory location when previously-stored data at that location is read, thus indicating when retrieved data is unreliable or corrupted. Error correction schemes both detect and correct such errors. Oftentimes, error detection and correction schemes are implemented by way of additional redundancy bits or bytes stored along with the data bits or bytes at each addressable location of the recording media. With respect to error correction, the redundancy information is often referred to as an error correction code (ECC). Generally speaking, the higher the ratio of ECC bits to data bits stored within a particular memory location, the greater the number of errors at the location that are correctable.
Error correction mechanisms ranging from simple bit parity schemes to complex block-oriented algorithms employ the data and ECC information in tandem to detect and correct errors. In recent years, the capability of error correction schemes has progressed such that increasing numbers and types of errors are routinely correctable. As a result, minor data errors within a memory location are routinely corrected as part of the data retrieval process. In particular forms of digital memory, such as magnetic and optical discs, wherein spare memory locations are typically allocated and readily available for replacement of persistently defective data, replacement of a defective memory location is typically postponed until the defects surpass a predetermined threshold. Thus, memory locations exhibiting small, correctable levels of defects are often tolerated before more heroic measures, such as memory location or media replacement, is undertaken.
In many cases, the capability of error correction schemes may be extended by way of additional information concerning the data errors encountered. More specifically, if the relative position of one or more possible errors within an addressable memory location is provided to the error correction algorithm, the number of errors correctable by the algorithm within that location may be increased, in some cases by a factor of two or more, by way of a special “erasure” correction mode. As employed in magnetic and optical disc memory systems, information concerning these relative positions, sometimes called erasure pointers, is produced from read channel errors and other sources of error information. Alternatively, in the case of IC memory, previous detection of persistent errors encountered within the same memory location may form the basis of erasure pointers.
In addition to the relative position of a persistent error, the extent, or “scope” of the persistent error is also valuable in extending error correction capability. In other words, a particular persistent error may adversely affect more than a single addressable location. For example, several memory locations, or even extremely large groups of addressable locations that are associated in some fashion, may all exhibit related data errors as a result of a single memory defect. How the affected memory locations are related is often determined by the physical characteristics of the digital memory media, the organization and interconnection of the memory locations, and other factors.